<?php
class Tools {
	public static function showUserAgent(){
		echo $_SERVER['HTTP_USER_AGENT'];
	}    
    public static function checkDevice() {
        $device = $_SERVER['HTTP_USER_AGENT'];
		$part='';
		if(strpos((string)$device, "Windows Phone")){
			$part='windowphone';
		}
		elseif(strpos((string)$device, "Windows")){
			$part='window';
			if(strpos((string)$device, "compatible") || strpos((string)$device, "U") ){
				$part='wap';
			}
		}              
		elseif(strpos((string)$device, "iPhone")){
			$part='iphone';
		}elseif(strpos((string)$device, "iPad")){
			$part='iphone';
		}elseif(strpos((string)$device, "iPod")){
			$part='iphone';
		}
		elseif(strpos((string)$device, "Android")){
			if(strpos((string)$device, "Android 2.2")){
				$part='android2.1';
			}
			elseif(strpos((string)$device, "Android 2.1")){
				$part='android2.1';
			}
			elseif(strpos((string)$device, "Android 2.0")){
				$part='android2.1';
			}
			elseif(strpos((string)$device, "Android 2.0.1")){
				$part='android2.1';
			}
			elseif(strpos((string)$device, "Android 1.6")){
				$part='android2.1';
			}
			else{
				$part='android';
			}
		}
		else{
			$part='wap';
		}
		return $part;   
    } 
    public static function array2json($arr) {
    	if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.
    	$parts = array();
    	$is_list = false;
    
    	//Find out if the given array is a numerical array
    	$keys = array_keys($arr);
    	$max_length = count($arr)-1;
    	if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1
    		$is_list = true;
    		for($i=0; $i<count($keys); $i++) { //See if each key correspondes to its position
    			if($i != $keys[$i]) { //A key fails at position check.
    				$is_list = false; //It is an associative array.
    				break;
    			}
    		}
    	}
    
    	foreach($arr as $key=>$value) {
    		if(is_array($value)) { //Custom handling for arrays
    			if($is_list) $parts[] = array2json($value); /* :RECURSION: */
    			else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */
    		} else {
    			$str = '';
    			if(!$is_list) $str = '"' . $key . '":';
    
    			//Custom handling for multiple data types
    			if(is_numeric($value)) $str .= $value; //Numbers
    			elseif($value === false) $str .= 'false'; //The booleans
    			elseif($value === true) $str .= 'true';
    			else $str .= '"' . addslashes($value) . '"'; //All other things
    			// :TODO: Is there any more datatype we should be in the lookout for? (Object?)
    
    			$parts[] = $str;
    		}
    	}
    	$json = implode(',',$parts);
    
    	if($is_list) return '[' . $json . ']';//Return numerical JSON
    	return '{' . $json . '}';//Return associative JSON
    }
    public static function is3G() {
    	$viettel=Yii::app()->params['viettel'];
//     	$mobi=Yii::app()->params['mobi'];;
    	$ip= $_SERVER['REMOTE_ADDR'];
    	$show='';
    	foreach ($viettel as $net){
//     		$objIP = new Net_IPv4();
    		if(Net_IPv4::ipInNetwork($ip, $net)){
    			$show='viettel';
    		}
    	}
//     	if($show==''){
//     		foreach ($mobi as $net){
//     			$objIP = new Net_IPv4();
//     			if($objIP->ipInNetwork($ip, $net)){
//     				$show='mobi';
//     			}
//     		}
//     	}
    	return $show;
    }
} 